Method for discovering and discriminating devices on local collaborative networks to facilitate collaboration among users

ABSTRACT

A method for identifying participants of a collaborative network is disclosed. The participants communicate over a larger electronic network wherein not all members may be participating in the collaborative session. The method begins by determining a unique session identifier for only the participants of the collaborative network. Next, a message having the session identifier is sent to all members of the network by an inquiring participant of the collaborative network. Only participants that have the session identifier respond to the inquiring participant. Finally, communication is established between the participants that responded to the message and the inquiring participant. In this regard, a collaborative network is formed including the inquiring participant.

CROSS REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of U.S. patent applicationSer. No. 12/344,140, entitled “Method for Discovering and DiscriminatingDevices on Local Collaborative Networks to Facilitate CollaborationAmong Users,” filed on Dec. 24, 2008, which is a continuation of U.S.patent application Ser. No. 11/211,112, entitled “Method for Discoveringand Discriminating Devices on Local Collaborative Networks to FacilitateCollaboration Among Users,” filed on Aug. 23, 2005, which is acontinuation of U.S. patent application Ser. No. 10/043,207 filed Jan.14, 2002, entitled “Method for Discovering and Discriminating Devices onLocal Collaborative Networks to Facilitate Collaboration Among Users.”The entire contents of each of the foregoing applications isincorporated by reference herein as if set forth in full below.

BACKGROUND OF THE INVENTION

The present invention generally relates to identifying members of acollaborative network and more particularly to a method of identifyingmembers in a peer-to-peer network without the use of a central server.

In a peer-to-peer network or system, users would like to collaborateusing their computing devices in a public or private collaborationsession without the use of a server. Collaboration may involve thetransfer of files, sending messages, or other forms of data between twoor more computing devices of the network. During collaboration, thecomputing devices share a physical network with other devices who theusers may wish to selectively include or exclude from their sessions.

Typically, a network has a central designated server that can identifyusers and the current network addresses or device identifiers of theirdevices which are currently logged-in as well as the session identifierswhich are used to distinguish specific collaboration sessions. Acollaboration session may correspond to an active group of collaborationparticipants or a team of participants in a virtual room/physicallocation for collaboration. When the user logs in, the central servercan provide the user's computing device a list of network addresses forthe other devices who share the same session identifier and excludethose who are not in the desired session.

Without a central server, it is extremely difficult to maintain anaccurate accounting of the participants in the collaborative session.The computing device of the user does not have access to a central listwhich can be used to identify participants. There is no centralmechanism for the addition and removal of participants. Accordingly, thecomputing device of the user will not be able to quickly and easilycontact all members of the collaborative session because they are notidentifiable to the user.

The Jini architecture provides an infrastructure for defining,advertising and finding services on a network where services are definedby Java interfaces or classes. Advertisement is done using a lookupservice, which is a place for services to advertise their presence on anetwork. Generally devices use Jini protocols to find lookup servers,then query found lookup servers using Jini to find services which mayexist on other network devices: Accordingly, the lookup service may notexist on the same device as the services advertised, nor does the Jiniitself provide information that can be used for collaboration.

Another type of location protocol is UPnP which is similar to the Jiniprotocol. UpnP uses multicast messaging to request the existence ofservices. Only those servers that can provide a requested service orthat know of servers who can provide such a service respond. Theindividual collaborative services do not respond. Accordingly, in orderto utilize the UpnP service, a server must be present on the network.

U.S. Pat. No. 6,069,896 entitled “Capability Addressable Network AndMethod Therefor” describes the connection protocol for members in a peerto-peer network. The '896 patent addresses the problems associated withtrying to connect and authenticate other peers on a peer-to-peernetwork. However, the '896 patent does not disclose how to identify andlocate other peers when collaboration between peers is necessary.Furthermore, the connection protocol described by the '896 patent isextremely bandwidth intensive such that it would not be suitable for theidentification of collaborative devices on a peer-to-peer network.

Similarly, U.S. Pat. No. 6,282,183 entitled “Method For AuthorizingCouplings Between Devices In A Capability Addressable Network” disclosesthe methods and protocols for authorizing coupling between devices in acapability-addressable network. However, the '183 patent does notdisclose how peers can be quickly and easily identified on the network.In fact, the '183 patent discloses how a device accesses networkservices.

The present invention addresses the above-mentioned deficiencies inidentification of users in a peer-to-peer network by providing a methodin which a user can identify the network addresses of other userswithout the use of a central server. Accordingly, the present inventionallows collaboration between computing devices where the network address(such as an IP address) and devices used by a user are not known inadvance and may change.

BRIEF SUMMARY OF THE INVENTION

In accordance with the present invention, there is provided a method foridentifying participants of a collaborative network. The participantscommunicate over a larger electronic network wherein not all members maybe participating in the collaborative session. The method begins bydetermining a unique session identifier for only the participants of thecollaborative network. Next, a message having the session identifier issent to all members of the network by an inquiring participant of thecollaborative network. Only participants that have the sessionidentifier respond to the inquiring participant. Finally, communicationis established between the participants that responded to the messageand the inquiring participant. In this regard, a collaborative networkis formed including the inquiring participant and excluding others onthe larger network.

The method of identifying participants further includes the step ofcreating a participant list of the members of the collaborative networkwhich can be stored by the participants. The participant list includesall of the participants of the collaborative network which have the samesession identifier.

The participants can be computing devices such as PDA's, computers orother electronic devices. In this regard, the collaborative network isan electronic network that is capable of transmitting and receivingmessages to and from computing devices. Typically, the collaborativenetwork is a wired or wireless network. The message having the sessionidentifier is a UDP datagram containing the session identifier. The UDPdatagram may be a broadcast or multicast datagram.

In accordance with the present invention, there is provided a system foridentifying members of a collaborative network. The system comprises atleast two computing devices in electronic communication with oneanother. Furthermore, the system includes a unique session identifierfor distinguishing members of the collaborative network from othermembers of the network. The system further includes an identificationmessage having the unique session identifier. The identification messageis sent between at least two computing devices such that if the sessionidentifier is identical between the two devices, then the devices aremembers of the collaborative network. Of course, it will be realizedthat multiple devices may be in electronic communication with oneanother such that only those devices which have the unique sessionidentifier are members of the collaborative network.

BRIEF DESCRIPTION OF THE DRAWINGS

These, as well as other features of the present invention will becomemore apparent upon reference to the drawings wherein:

FIG. 1 is a diagram depicting computing devices on a network forcollaboration.

FIG. 2 is a flowchart illustrating how the computing devices shown inFIG. 1 are identified in a collaborative session.

FIG. 3 is a flowchart illustrating how a computing device is removedFrom a collaborative session.

FIG. 4 is a flow chart illustrating another method of how a computingdevice is identified in a collaborative session.

FIG. 5 is a diagram depicting computing devices on a personal areanetwork for collaboration.

FIG. 6 is a diagram depicting computing devices utilizing access pointsin a network for a collaborative session.

DETAILED DESCRIPTION OF THE INVENTION

Referring now to the drawings wherein the showings are for purposes ofillustrating a preferred embodiment of the present invention only, andnot for purposes of limiting the same, FIG. 1 illustrates computingdevices A, B, C, D, and E in a peer-to-peer network. The computingdevices may be PDA's, PC's, wireless telephones, or any other type ofelectronic device that can be in a network. The network may be wired(i.e, LAN or Ethernet) or wireless network (i.e., Bluetooth, 802.11b).The present invention is independent of the type of the computing deviceor the type of network.

Each of the computing devices A, B, C, D, and E has a respective networkidentification number. For instance, computing device A has a networkidentification number of 001. The network identification number is aunique identifier to the network. Furthermore, each computing device mayalso have an associated network address. The address may be an IPaddress or other type of network specific address. In some instances thenetwork identification number and the network address may be the sameunique identifier for the computing device.

Referring to FIG. 1, it is possible to see that computing device A is indirect network communication with devices B and D. Similarly, computingdevice C is in communication with devices B and E. It is possible forcomputing device A to indirectly communicate with computing device C byutilizing the connection with computing device B. Accordingly, it ispossible for computing devices A and C to collaboratively shareinformation by utilizing their connectivity with device B.

Referring to FIG. 2, a method of identifying computing devices in acollaborative network according to the present invention is shown. Themethod begins by the device accessing and logging into the network viacommonly known techniques. Next, the device that has just accessed thenetwork will send out a broadcast or multicast datagram containing thenetwork identification of the device, as well as a session identifier,to all potential participant devices on the network. If an appropriatereceiving device is a member of the same session, then the device willrecognize the session identifier and respond with the identification ofthe computing device and the network address of the device. However, ifa computing device is not a member of the group, the computing devicewill not respond. Finally, the inquiring device would generate orpopulate a list of devices that are in the same session as the device sothat collaboration can occur.

Using FIG. 1, an example of how the devices communicate will now bedescribed. For example, assume that devices A, B, and C wish tocollaborate but want to exclude devices D and E on the network. All ofthe devices (i.e, A, B, C, D, and E) are on the same network and cancommunicate with each other using broadcast or multicast messages anddirected packets. As previously discussed, any type of wired or wirelessnetwork can be used.

The user's of devices A, B, and C agree on the ID of their session bychoosing a name which can be turned into a unique session ID using anytype of algorithm. Alternatively, the session ID can be the name itself.For instance, the session ID may be the name of the company, adepartment or group, the name of a location, or the purpose of thecollaboration session. The agreement for the session ID can occur beforeor after the computing devices are logged onto the network. Forinstance, the users of the devices can decide on the unique session IDby other means of communication such as telephone, email, or face toface discussion. However, the user's of devices D and E are not told anddo not know the name of the session ID.

Once the user of device A has logged into the network, the user willenter the name of the session ID into computing device A. If the name ofthe session is not the session ID, then computing device A will use theappropriate algorithm to derive the session identifier. Once the sessionID has been established, then device A will send a broadcast messagecontaining the appropriate session identifier to every device on thenetwork (i.e., devices B, C, D, and E). The other devices receive thebroadcast message (i.e., packet) and examine it. At this point none ofthe other user's of the devices on the network have entered theappropriate session M. Accordingly, because none of the other devicesrecognize the session ID, none of the devices respond. By using thesession ID in the broadcast message, bandwidth is saved and scalabilityis increased. The session ID in the query considerably reduces thenumber of responses and traffic because authentication beginsimmediately once a response is received by a collaborating device of thesame session.

Next, the user of device B enters the name of the session on device Bwhich derives the corresponding session la Once the session ID has beenentered, device B sends a broadcast message to the other devices on thenetwork (i.e., devices A, C, D, and E). Device A recognizes the sessionID and responds with the device ID and/or network address. Of course,devices C, D, and E do not recognize the session ID and do not respondto device A. Then, device A populates a collaboration sessiondevice/user list with the ID and/or network address of device B.Similarly, device B populates its collaboration session device/user listwith the ID and/or network address of device A. As such, device A anddevice B can collaborate over the network without intrusion by the otherdevices.

If the user of device C wishes to join the collaboration session, thenthe user will enter the appropriate session name into device C whichderives the corresponding session ID. Once entered, device C will send abroadcast message to all of the devices. Devices A, B, D and E willreceive the packet and only devices A and B will recognize the sessionID and respond with the device and/or network address. Accordingly,device A and device B populate their respective device lists with theinformation from device C. Similarly, device C populates its device listwith the information from devices A and B in order to form acollaborative network between devices A, B, and C, while still excludingdevices D and E.

Referring to FIG. 3, several mechanisms are illustrated for a computingdevice leaving the collaborative session. In the first instance acomputing device can leave the network gracefully inasmuch as it doesn'tcrash. The device leaving the network will send a message to all of thedevices connected to the network using either a connection orientedprotocol or a datagram. The message will declare that the device isleaving the network and that the remote peer is offline. Once themessage has been sent, each of the devices that are members of thesession can appropriately update their device lists by removing thedevice that left the network.

On the other hand, sometimes the network connection may be terminatedabruptly such as when the network connection is physically broken, theexit datagram is lost, or the remote peer goes out of range on awireless network. Accordingly, it is not possible to send or receive amessage indicating that the device has left the session.

In order to account for this type of event, each device should beequipped to periodically send a “still alive” message to each connecteddevice. For example, each device in the network could send a messageevery ten seconds to the other devices indicating that the device isstill on the network. The “still alive” message could be aconnectionless datagram or a message sent using a connection protocolbetween the devices.

If a device does not detect or receive a “still alive” message fromanother device of the network for more than twice a determined interval,then the device is declared offline and the connection is torn down.Furthermore, the device declared offline is removed from the devicelist. For example, referring to FIG. 1, if device A does not receive a“still alive” message for more than two intervals of the message beingsent (i.e., 20 seconds), then device A will declare device B offline andremove device B from the device list.

Referring to FIG. 4, another method of identifying members of acollaborative network is shown. In this instance, the session identifieris not included in the broadcast or multicast datagram. The device willfirst log into the network. Next, the initiating device will transmit abroadcast or multicast datagram that does not include the sessionidentifier. Every device that is active on the network will then respondto the datagram. Next, the initiating device will connect to everyresponding device using a connection oriented protocol such as TCP toexchange messages relating to which session a device is a member. Theconnection can then be dropped or maintained as necessary. For instance,all of the devices which have the same session identifier as theinitiating device will have their connection maintained. If theconnection is maintained, all future messages regarding session changes,exiting the network, or “keep alive” messages can then be sent using areliable connection oriented protocol. This method can be furtherextended to support multiple networks or IP subnets by forwarding themulticast or broadcast packets to receivers in another network/subnetwhich can then multicast or broadcast the packets.

Furthermore, the above-mentioned process can be combined with anauthentication protocol to ensure that the device is actually a memberof the session. An additional protocol can then be used between peers toensure that peers recognize each other. A password or shared key couldbe used for authentication. Alternatively, public key cryptography couldbe used where each device contains the keys of all possiblecollaborators and is used to authenticate other users. Once the devicehas been verified to be a member of the session, then the device canconnect to other devices in the same session with a protocol like TCP ina peer-to-peer manner for collaboration.

Another instance of identification can occur when a network does notexist between devices, but the devices can communicate over some othertype of connection. Accordingly, a connection could be set up initiallybetween the devices to determine if session identifiers match. Forexample, a “client” device connects to a “server” device using somevariant of a radio inquiry/response. The “client”. then asks the“server” for the collaboration session ID to which the “server” willrespond. If the session II) matches, the “client” remains connected andauthenticates the session ID in order to collaborate with the “server”.This could be implemented with devices communicating over a Bluetoothnetwork.

Referring to FIG. 5, the identification method of the present inventioncan be utilized with a Personal Area Network (PAN). For example, a PANnetwork consists of a central master device A and slave devices B, C, D,and E connected in a star shaped topology. The master device A isresponsible for forwarding unicast, multicast, and broadcast packets asrequired by the PAN. A device in the PAN, can respond on behalf of otherdevices such that each device is either designated as a master or slavedevice. A master is first created on the PAN with no other devicesconnected to it, and devices are designated as slaves as they join thePAN.

For the identification of devices according to the present invention,after a slave device connects to the PAN, the slave device sends aninquiry message in a broadcast or multicast datagram containing thesession identifier and the user identifier to all potential participantdevices in the network. The master device receives the broadcastdatagram and, as will be further explained below, does not need toforward the datagram thereby saving bandwidth. The master will save thesession ID and network address from the inquiry for future use. Next,the master will retrieve previously saved network address/sessioninformation from previous requests. In this regard, the master willcontain network/session information about all of the slave devices. Themaster will reply to the inquiry (i.e., broadcast or multicast datagram)with a list of the network ID's that match the session 11) requested.The slave will use this information to begin a collaborative sessionwith the devices that have matching session ID's. In order to savebandwidth in the network, the master will save and respond to allinquiry requests from the slave devices. In this manner, slaves whodisconnect can then inform only the master who can then delete thenetwork ID/session information from its list and notify the otherconnected slave devices.

The technique of the present invention can also be used to identifyother devices in the same local area for collaboration without the needof a server. Referring to FIG. 6, computing devices A, B, and C canaccess network 20 through access point X. Similarly, computing devices Dand E access network 20 through access point Y. Each of the devicesstores the access point identifier (i.e., X or Y) after it connects. Asthe devices move, they store the ID's of the closest access point.

In order to identify participants near a desired device, the inquiringdevice sends a broadcast or multicast message containing the accesspoint identifier instead of session ID information. Only those deviceswhich have the same access point identifier will respond therebyidentifying those devices which are nearby. For instant, referring toFIG. 6, if device A sends out an inquiry, only devices B and C willrespond. This technique is useful for identifying participants that arein range of a wireless network. Additionally, instead of using accesspoint identifiers, physical “beacon” identifiers can be used.

In addition to the foregoing, it is also contemplated that theabove-mentioned method could be used with a designated responder for asession. When a computing device transmits a session identifier requestto a designated responder, the responder would reply with informationabout all of the other devices with the same session ID. Accordingly,the other devices would not need to respond thereby reducing bandwidthusage.

Furthermore, to reduce bandwidth, when a device joined or rejoined anetwork it could attempt to connect to a previous member of the teamfirst. If found, the device could ask the found member for theinformation about other collaborative devices. If the previous member isnot in the session, then the device would utilize thebroadcast/multicast messaging as previously described above.

Additional modifications and improvements of the present invention mayalso be apparent to those of ordinary skill in the art. Thus, theparticular combination of parts described and illustrated herein isintended to represent only certain embodiments of the present invention,and is not intended to serve as limitations of alternative deviceswithin the spirit and scope of the invention.

1. A computer implemented method comprising: at a first peer computingdevice in a peer-to-peer network, sending a multicast message to atleast two additional peer computing devices on a network, the multicastmessage comprising a session identifier, the session identifier derivedfrom a session name based on user prior to establishing a newcollaborative network; responsive to the sending, receiving a unicastmessage from at least a plurality of the at least two additional peercomputing devices on network having the same session identifier, each ofthe unicast messages comprising: an IP address, or an address resolvableto an IP address, of the additional peer computing device; and otheridentification of the additional peer computing device; and forming anew collaborative network that includes each of the plurality of peercomputing devices that have responded.
 2. The method of claim 1, furthercomprising periodically sending a message to the network to announce thepresence of the first peer computing device.
 3. The method of claim 1,further comprising the first peer computing device broadcasting amessage announcing a departure of the first peer computing device fromthe network.
 4. The method of claim 1, further comprising: the firstpeer computing device maintaining a record of an interval since a lastmessage from a peer computing device other than the first peer computingdevice; and when a pre-determined threshold is exceeded for theinterval, removing the peer computing device other than the first peercomputing device from the collaborative network.
 5. The method of claim1 wherein the network is a wireless ad-hoc network.
 6. The method ofclaim 1 wherein the identifier is pre-determined by a softwareconfiguration of the first peer computing device.
 7. The method of claim1, further comprising: periodically sending a message to the network toannounce the presence of the first peer computing device; the first peercomputing device broadcasting a message announcing a departure of thefirst peer computing device from the network; the first peer computingdevice maintaining a record of an interval since a last message from apeer computing device other than the first peer computing device; andwhen a pre-determined threshold is exceeded for the interval, removingthe peer computing device other than the first peer computing devicefrom the list; wherein the subnet is a wireless ad-hoc network and theidentifier is pre-determined by a software configuration of the firstpeer computing device.
 8. The method of claim 1, further comprising:periodically sending a message to the network to announce the presenceof the first peer computing device; the first peer computing devicebroadcasting a message announcing a departure of the first peercomputing device from the network; the first peer computing devicemaintaining a record of an interval since a last message from a peercomputing device other than the first peer computing device; and when apre-determined threshold is exceeded for the interval, removing the peercomputing device other than the first peer computing device from thecollaborative network; wherein the identifier is pre-determined by asoftware configuration of the first peer computing device.
 9. Anapparatus comprising: a memory; an interface configured to communicatewith a peer-to-peer network; and one or more processors configured to:send a multicast message to at least a plurality of additional peercomputing devices on an Internet Protocol (IP)-connected network, themulticast message comprising a session identifier, the sessionidentifier derived from a session name based on user input, theapparatus comprising a first peer computing device on the IP-connectednetwork; responsive to the sending, receive a unicast message from atleast a plurality of the at least two additional peer computing deviceson the IP-connected network having the same session identifier, theunicast message comprising: an IP address, or an address resolvable toan IP address, of the additional peer computing device; and otheridentification of the additional peer computing device; and establishinga new collaborative network that includes each of the plurality of peercomputing devices that have responded.
 10. The apparatus of claim 9wherein the one or more processors are further to periodically sending amessage to the network to announce the presence of the first peercomputing device.
 11. The apparatus of claim 9 wherein the one or moreprocessors are further to broadcast a message announcing a departure ofthe first peer computing device from the network.
 12. The apparatus ofclaim 9 wherein the one or more processors are further to: maintain arecord of an interval since a last message from a peer computing deviceother than the first peer computing device; and when a pre-determinedthreshold is exceeded for the interval, remove the peer computing deviceother than the first peer computing device from the new collaborativenetwork.
 13. The apparatus of claim 9 wherein the network is a wirelessad-hoc network.
 14. The apparatus of claim 9 wherein the identifier ispre-determined by a software configuration of the first peer computingdevice.
 15. The apparatus of claim 9 wherein the one or more processorsare further to: periodically send a message to the network to announcethe presence of the first peer computing device; broadcast a messageannouncing a departure of the first peer computing device from thenetwork; maintain a record of an interval since a last message from apeer computing device other than the first peer computing device; andwhen a pre-determined threshold is exceeded for the interval, remove thepeer computing device other than the first peer computing device fromthe new collaborative network; wherein the network is a wireless ad-hocnetwork and the identifier is pre-determined by a software configurationof the first peer computing device.
 16. The apparatus of claim 9 whereinthe one or more processors are further to: periodically send a messageto the network to announce the presence of the first peer computingdevice; broadcast a message announcing a departure of the first peercomputing device from the network; maintain a record of an intervalsince a last message from a peer computing device other than the firstpeer computing device; and when a pre-determined threshold is exceededfor the interval, remove the peer computing device other than the firstpeer computing device from the new collaborative network; and whereinthe identifier is pre-determined by a software configuration of thefirst peer computing device.
 17. A nontransitory computer-readablemedium comprising a program of instructions for execution and whenexecuted operable to: at a first peer computing device in a peer-to-peernetwork, sending a multicast message to at least two additional peercomputing devices on an Internet Protocol (IP)-connected network, themulticast message comprising a session identifier, the sessionidentifier derived from a session name based on user input-prior toestablishing a new collaborative network; responsive to the sending,receiving a unicast message from at least a plurality of the at leasttwo additional peer computing devices on the IP-connected network havingthe same identifier, each of the unicast messages comprising: an IPaddress of the additional peer computing device and other identificationof the additional peer computing device; and forming the newcollaborative network that includes each of the plurality of peercomputing devices that have responded.